Историята на семейството формати MPEG започва през 1988.Тогава е била събрана група от експерти , наречена “ Moving Pictures Expert Group “ – точно оттука идва абревиатурата  MPEG .На български това вероятно трябва да се преведе като “Експертна Група по Кинематография”.Резултат от  работата на тази група се появява през 1993 .

 

Форматът  MPEG-1

 

За да оцените истинските постижения на групата искам да ви припомня че през тези години компютрите  не бяха на сегашното ниво и нямаше разработени носители на големи обеми информация.Компютър  с 250 МВ харддиск , RAM 4MB , процесор 286 или 386 си беше направо лукс.За пренасяне на информация се ползваха предимно 5-инчовите дискети , а 3,5-инчовите съвсем скоро бяха измислени от SONY .Именно в такива условия на групата е била поставена задачата да намери носител , на който да бъде записан около 1 GB , и този носител да не бъде скъп за да може да се наложи широко сред потребителите.

Точно по него време се появяват  CD-ROM дисковете .Въпреки че са били с “внушителен “капацитет  , един диск не е побирал един филм но в крайна сметка какво е пречи филма да се запише на два диска?Разбира се, първите CD-ROM устройства са били едноскоростни и затова не се учудвайте на ограничението на максималната скорост на прехвърлянето на данните (bit stream) в MPEG –1.То е 150 Кб/сек , което отговаря на 1-ва скорост на CD-ROM.

 

 

Искам да отбележа че възможностите на  MPEG-1 не са ограничени до ниската разделителна способност , която сте виждали на VIDEO-CD.Във формата е заложена възможност за поддържане на резолюция до  4095х4095 при 60 херца.Ограничението (Constrained Parameters Bitstream (CPB)) идва от тези 150 Кб/сек ,и всички които са работели по  формата са били принудени да да използват резолюции , оптимизирани  за CPB.Най-разпространени са два такива формата - SIF 352х240, 30 кадъра в секунда и изрязания  формат PAL/SECAM 352х288, 25 кадъра в секунда.

 

Принципите на компресия в MPEG-1

Тука се спирам на орязания PAL/SECAM по простата причина че SIF е много по-малко разпространен.Въпросния  PAL/SECAM съдържа 352 ppl (point per line- точки на линия ) , 288 lpf (line per frame-линии на кадър) и 25 fps (frame per second-кадъра в секунда).За отбелязване е че с изключение на броя на кадрите , стандартния PAL/SECAM притежава 4 пъти по-добри параметри в сравнение с орязания , ползван от MPEG-1.Това е причината да се твърди че VIDEO-CD е 4 пъти по некачествено от  обикновеното видео.

Що се отнася за дълбочината на цвета , тука не всичко е просто като в компютърната графика , където за всеки пиксел се падат определен постоянен брой битове . MPEG-1 използва  цветовата схема YСbCr където У е яркостната плоскост, Сb и Cr – цветовите плоскости.Тези плоскости се кодират (компресират ) с различна резолюция в няколко варианта:

 

Вариант  на кодиране

Отношение на резолюциите Сb/Y (Сr/Y) по хоризонталата

Отношение на резолюциите  Сb/Y (Сr/Y) по вертикалата

4:4:4

1:1

1:1

4:2:2

1:2

1:1

4:2:0

1:2

1:2

4:1:1

1:4

1:1

4:1:0

1:4

1:4

 

 

 

 

Както виждате от таблицата , Сb и Cr практически винаги се кодират с по-малка реолюция от Y. Колкото е по-малка резолюцията на  цветните плоскости толкова е по-неестествен цвета във филма.Най-малък по размер , но и най-некачествен ще бъде последния вариант .(Май ще излязат прави продуцентите на “Годзила”: размерът има значение ; -)

 

 

Преди кодирането се прави анализ на кадрите , определят се кадрите , които ще бъдат ключови и няма да се променят когато се  кодират , и кадрите , при които част от информацията ще се изреже при кодирането .Общо се отделят следните кадри:

 

 

1.                  Кадри тип I - Intra frame. Ключови кадри , които се компресират без изменение

2.                  Кадри тип P - Predirected frame. При кодирането на тези кадри част от информацията се изрязва.Когато се възпроизвеждат тези кадри се използва информация от предния кадър ( I или P )

3.                  Кадри тип В - Bidirectional frame. При кодирането им загубите на информация са още по-големи .При възпроизвеждането им се ползва вече информация от два предходни I или P кадъра.В кадрите са именно причината MPEG-1 да има такава компресия , но и не особено добро качество.

 

При кодирането се образува верижка от кадри от различните типове , примерно в следния ред :

IBBPBBPBBIBBPBBPBB...

Съответно възпроизвеждането на кадрите по номера ще бъде в следния ред: 1423765...

След разбиването на кадрите започва процеса по кодирането им .

С I-кадрите процеса на подготовка се изчерпва с разцепването има на блокове  с размер  8х8 пиксела .

За сметка на това за кадрите  P и B подготовката е доста по-сложна .За да могат да се свият максимално тези кадри се използва алгоритъм за предсказване на движение.За входна информация се ползва блок (8х8 пиксела) от текущия кадър и аналогични блокове от предходните кадри ( I или P ) .На изхода на алгоритъма имаме следната информация:

   1.Вектор на движение на текущия блок относно предходните

   2.разликата между текущия и предходните , която разлика именно ще се компресира.

Всичката останала информация се изхвърля . благодарение на което се постига толкова висок коефициент на компресия , което би било невъзможно без загуби.

Алгоритъма за предсказване на движения също си има недостатъци.Често във филмите има сцени , в които движението е незначително или направо липсва, и възникват кадри  (или поне блокове) , при които не може да се ползва алгоритъма и компресирането е пренебрежимо малко, но пък качеството е добро , понеже в тоя случай P и B кадрите са копия на ­І .При сцени с малко движение картината е добра , но за сметка на това качеството на “бързите” сцени трудно може да се нарече задоволително.

Размерите на рзличните типове кадрите са в съотношение I:P:B както 15:5:2 .Както виждате , намаляването на обема на видоинформацията е налице още на стадий подготовка за кодиране.

Самото кодиране протича в 3 стадия :

 

1.                  Discrete Cosine Transformation - DTC, дискретно преобразование на косинусите ,  преобразование на Фурие.

2.                  Quantization - квантоване. Превод на данните от непрекъснат вид в прекъснат

3.                  Преобразуване на получените блокове в последователност , т.е. от матрична в линейна форма.

 

 

При кодиране на блокове или изчислената разлика между блоковете се ползва DTC.Обикновено пикселите в блоковете или самите блокове по някакъв начин са свързани помежду си – например еднообразен фон , еднакво осветление и т.н.Тази връзка се нарича корелация.Алгоритъма DTC , използвайки корелиращи ефекти , преобразува блоковете в честотни  компоненти на Фурие.При това част от информацията се губи заради изравняването на силно отделящите се участъци , които не се подчиняват на корелация.

След това влиза в действие алгоритъма Quantization , който оформя Quantization matrix. Quantization matrix – това е матрицата на квантоване , елементи на която са преобразуваните от непрекъснат в прекъснат вид данни, т.е. стойностите на амплитудата на компонентите на Фурие.След формирането на матрицата се разбиват честотните коефициенти на конкретната стойност . като точността им е фиксирана на 8 бита.

На финалния стадии много от коефициентите се нулирват и след това матрицата преминава в линейна форма.

Всички тези преобразувания касаят само образа.Кодирането на звука става с друг кодек .Към момента на създаване на MPEG –1 е имало три кодека - MPEG-1 Layer I, Layer II и Layer 3 ( прочутия МР3).Принципите на кодиране на тези 3 кодека са на основаната на психоакустически модел , който става все по-съвършен и достигна апогей при МР3.

Тука няма да се спирам на аудиокомпресията , само ще засегна въпроса за синхронизацията на двата потока ( видео и аудио ).За синхронизацията им се ползва специален поток данни , наречен System stream. System stream има вграден таймер , който работи на 90 Кхц  и съдържа два слоя – системния с таймера и служебната информация за синхронизирането на кадрите с аудиопътеката  и компресионния слой с видео и аудиопотоците.

 

                                                                          към MPEG-2